キャラクタファイルには、1バンク分のキャラクタデータ、IS-CGB-CHARACTERが使用するアトリビュート、およびカラーパレット0から7までの64バイトのカラーパレットが格納されています。
バイト ┏━━━━━━━━┓ 0 ┃キャラクタデータ┃ ┃ ┃ 17FF ┃ ┃ ┠────────┨ 1800 ┃アトリビュート ┃ ┃ ┃ 197F ┃ ┃ ┠────────┨ 1980 ┃カラーパレット ┃ ┃ ┃ 19BF ┃ ┃ ┠────────┨ 19C0 ┃予約 ┃ ┃ ┃ 1AFF ┃ ┃ ┗━━━━━━━━┛
キャラクタファイルの最後の140Hバイトは予約されている領域であり、キャラクタファイルを使用する時にはこの領域は無視してください。
キャラクタファイルの先頭から17FFHまでの1800Hバイトには、1バンク分のキャラクタデータが格納されています。格納状態は、次のようにゲームボーイの8000H番地から97FFH番地までのメモリマップと同じ内容になっています。
バイト キャラクタ番号 ┏━━━━━━━━━━━━━━┓ 0 ┃キャラクタデータ ライン0下位┃ 0 1 ┃キャラクタデータ ライン0上位┃ 〜 〜 E ┃キャラクタデータ ライン7下位┃ F ┃キャラクタデータ ライン7上位┃ ┠──────────────┨ 10 ┃ ┃ 1 1F ┃ ┃ ┠──────────────┨ 〜 〜 ┠──────────────┨ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━━━┛
キャラクタデータ1ライン 7 6 5 4 3 2 1 0 ┏━┯━┯━┯━┯━┯━┯━┯━┓ ┃ │ │ │ │ │ │ │ ┃下位 ┗━┷━┷━┷━┷━┷━┷━┷━┛ ┏━┯━┯━┯━┯━┯━┯━┯━┓ ┃ │ │ │ │ │ │ │ ┃上位 ┗━┷━┷━┷━┷━┷━┷━┷━┛ 左端 右端
ファイルの先頭からのオフセット1800Hから197FHまでの180Hバイトには、IS-CGB-CHARACTERが使用するアトリビュートデータが格納されています。このアトリビュートデータは、本来キャラクタデータには存在しないカラーパレット番号をキャラクタごとに用意したものです。通常、このアトリビュートデータをユーザが使用することはありません。
バイト ┏━━━━━━━━━━━━━━━━━━━━━━━━┓ 1800H ┃ブロック0のキャラクタ0Hのカラーパレット番号 ┃ 1801H ┃ブロック0のキャラクタ1Hのカラーパレット番号 ┃ 1802H ┃ブロック0のキャラクタ2Hのカラーパレット番号 ┃ 〜 〜 ┠────────────────────────┨ 1880H ┃共通ブロックのキャラクタ80Hのカラーパレット番号 ┃ 1881H ┃共通ブロックのキャラクタ81Hのカラーパレット番号 ┃ 1882H ┃共通ブロックのキャラクタ82Hのカラーパレット番号 ┃ 〜 〜 ┠────────────────────────┨ 1900H ┃ブロック1のキャラクタ0Hのカラーパレット番号 ┃ 1901H ┃ブロック1のキャラクタ1Hのカラーパレット番号 ┃ 1902H ┃ブロック1のキャラクタ2Hのカラーパレット番号 ┃ 〜 〜 ┗━━━━━━━━━━━━━━━━━━━━━━━━┛
ファイルの先頭からのオフセット1980Hから19BFHの領域には、カラーパレット0から7までの64バイトのデータが格納されています。
バイト カラーパレットNo. ┏━━━━━━━━━━┓ 0 ┃パレットデータ0下位 ┃ 0 1 ┃パレットデータ0上位 ┃ 2 ┃パレットデータ1下位 ┃ 3 ┃パレットデータ1上位 ┃ 4 ┃パレットデータ2下位 ┃ 5 ┃パレットデータ2上位 ┃ 6 ┃パレットデータ3下位 ┃ 7 ┃パレットデータ3上位 ┃ ┠──────────┨ 8 ┃ ┃ 1 ┠──────────┨ 16 ┃ ┃ 2 ┠──────────┨ 24 ┃ ┃ 3 ┠──────────┨ 32 ┃ ┃ 4 ┠──────────┨ 40 ┃ ┃ 5 ┠──────────┨ 48 ┃ ┃ 6 ┠──────────┨ 56 ┃ ┃ 7 ┗━━━━━━━━━━┛
パレットデータは、次のように2バイトで1色を表し、RGB各色は5ビットのデータを有します。
パレットデータ上位 パレットデータ下位 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 ┏━┳━┯━┯━┯━┯━┳━┯━┓┏━┯━┯━┳━┯━┯━┯━┯━┓ ┃ ┃ │ │ │ │ ┃ │ ┃┃ │ │ ┃ │ │ │ │ ┃ ┗━┻━┷━┷━┷━┷━┻━┷━┛┗━┷━┷━┻━┷━┷━┷━┷━┛ 0 青 緑 赤
このカラーパレットのデータは、カラーパレットファイルと全く同じ構造となっています。